package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 零元购活动领取记录
 */
@Data
@TableName("tz_copyright_works")
public class CopyrightWorks {

    @TableId()
    @Schema(description = "id")
    private Long worksId;

    @Schema(description = "用户id")
    private String userId;

    private Date createTime;
    private Date updateTime;
    @Schema(description = "受理号")
    private String acceptanceNumber;
    @Schema(description = "1申请2审核通过3审核失败5取消申请")
    private String status;
    @Schema(description = "作品名称")
    @NotBlank(message = "作品名称不能为空")
    private String worksName;
    @NotBlank(message = "作品类型不能为空")
    @Schema(description = "作品类型(音乐和图片即 B和FGJK,其他不支持)A文字B音乐C 戏剧D 曲艺E 舞蹈F 美术G 摄影H 电影I 视听（类似摄制电影方法创作作品）J 工程设计图、产品设计图 K 地图、示意图L 其他作品 M 口述 N 杂技 O 建筑P 模型 ")
    private String worksType;
    @NotBlank(message = "作品不能为空")
    @Schema(description = "作品地址链接")
    private String workFileUrl;
    @NotBlank(message = "封面不能为空")
    @Schema(description = "封面地址链接")
    private String worksCoverUrl;
    @NotBlank(message = "权利保证书不能为空")
    @Schema(description = "权利保证书地址")
    private String powerGuaranteeUrl;
    @NotBlank(message = "创作性质不能为空")
    @Schema(description = "创作性质:1原创 2 改编 3 翻译 4 汇编 5 注释 6 整理 7 其他")
    private String inditeNature;
    @Schema(description = "权利拥有方式:1全部2部分3发表权4署名权5修改权6保护作品完整权7复制权8发行权9出租权10展览权11表演权12放映权13广播权14信息网络传播权15摄制权16改编权17翻译权18汇编权19其他")
    private String copyrightOwnRange;
    @Schema(description = "作品归属情况:1个人作品2合作作品3法人作品4职务作品5委托作品")
    private String worksBelongType;
    @Schema(description = "权利取得方式:1原始 2 继承 3承受 4其他")
    private String copyrightObtainChannel;
    @Schema(description = "作品创作说明")
    private String description;
    @Schema(description = "创作完成时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    @NotNull(message = "创作完成地点不能为空")
    private java.sql.Date inditeDoneTime;
    @NotBlank(message = "创作完成地点不能为空")
    @Schema(description = "创作完成地点")
    private String createPlace;
    @Schema(description = "失败原因")
    private String reason;
    @Schema(description = "失败范围")
    private String reasonStatus;
    @Schema(description = "1待登记2登记完成3登记失败")
    private String nftStatus;
    @Schema(description = "链tokenId")
    private String tokenId;
    @Schema(description = "链品类ID")
    private String denomId;
    @Schema(description = "商品ID")
    private Long prodId;
    @Schema(description = "店铺ID")
    private Long ShopId;
    @Schema(description = "证书地址")
    private String worksCertificateUrl;
    @TableField(exist = false)
    @Schema(description = "持有人姓名")
    private String ownName;
    @TableField(exist = false)
    @Schema(description = "作品类型名称")
    private String worksTypeName;
    @TableField(exist = false)
    @Schema(description = "创作性质名称")
    private String inditeNatureName;

}
